package com.cqeec.gams.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cqeec.gams.entity.Account;

/**
 * 账户数据访问接口。
 * 
 * @author 唐礼飞
 *
 */
public interface AccountMapper {
	/**
	 * 统计表中所有的记录数。
	 * 
	 * @return 总的记录数。
	 */
	public long count();

	/**
	 * 根据指定的标识查询账户。
	 * 
	 * @param id 账户标识。
	 * @return 账户。
	 */
	public Account findById(String id);

	/**
	 * 查询所有账户信息。
	 * 
	 * @return 所有账户。
	 */
	public List<Account> findAll();

	/**
	 * 分页查询账户信息。
	 * 
	 * @param startRowNumber 起始行号=（页码-1）*每页记录数。
	 * @param pageSize       每页记录数。
	 * @return 分页的账户信息。
	 */
	public List<Account> findPage(@Param("startRowNumber") int startRowNumber, @Param("pageSize") int pageSize);

	/**
	 * 插入账户信息。
	 * 
	 * @param account 账户。
	 */
	public void insert(Account entity);

	/**
	 * 根据标识更新账户信息。
	 * 
	 * @param account 账户。
	 */
	public void update(Account entity);

	/**
	 * 根据标识删除账户信息。
	 * 
	 * @param id 标识。
	 */
	public void delete(String id);

	/**
	 * 根据用户名和密码查找登录的账户。
	 * 
	 * @param name     用户名或登录名。
	 * @param password 密码。
	 * @return 账户。
	 */
	public Account findByNameAndPassword(@Param("name") String name, @Param("password") String password);

	public long countByLikeName(String string);

	public List<Account> findPageByLikeName(@Param("startRowNumber") int startRowNumber,
			@Param("pageSize") int pageSize, @Param("name") String name);
}
